
package Serializacao;

import RegrasNegocio.Usuario;
import DB.ConexaoDB;
import DB.TipoCampo;
import java.sql.ResultSet;

public class Usuario_DB {

    public static ResultSet Login(String Login, String Senha){
        
        ConexaoDB conexao = new ConexaoDB();
        ResultSet Dados;

        try {           
            conexao.ConectarDB();
            conexao.addParametro(1,TipoCampo.Texto,Login);
            conexao.addParametro(2,TipoCampo.Texto,Senha);            
            Dados = conexao.RetornaDados("Select u.id_usuario, u.login, u.id_grupo_usuario, u.id_registro from USUARIO U Where (u.login = ?) AND (u.senha = ?)");
            
            if (Dados.next()) {
                
                if (Dados.getString("ID_GRUPO_USUARIO").equalsIgnoreCase("PAC")){
                    conexao.limparParemetros();
                    conexao.addParametro(1,TipoCampo.Numero,Dados.getString("id_usuario"));
                    Dados = conexao.RetornaDados("Select u.id_usuario, u.login, p.nome, u.id_grupo_usuario, p.status, u.id_registro from USUARIO u Inner Join paciente p on (p.cartao_sus = u.id_registro) Where (u.id_usuario = ?)");
                } else
                if (Dados.getString("ID_GRUPO_USUARIO").equals("SEC")){
                    conexao.limparParemetros();
                    conexao.addParametro(1,TipoCampo.Numero,Dados.getString("id_usuario"));
                    Dados = conexao.RetornaDados("Select u.id_usuario, u.login, f.nome, u.id_grupo_usuario, f.status, u.id_registro from USUARIO u Inner Join funcionario f on (f.id_funcionario = u.id_registro) Where (u.id_usuario = ?)");

                } else
                if (Dados.getString("ID_GRUPO_USUARIO").equals("POS")){
                    conexao.limparParemetros();
                    conexao.addParametro(1,TipoCampo.Numero,Dados.getString("id_usuario"));
                    Dados = conexao.RetornaDados("Select u.id_usuario, u.login, f.nome, u.id_grupo_usuario, f.status, u.id_registro from USUARIO u Inner Join funcionario f on (f.id_funcionario = u.id_registro) Where (u.id_usuario = ?)");
                } else
                if (Dados.getString("ID_GRUPO_USUARIO").equals("MED")){
                    conexao.limparParemetros();
                    conexao.addParametro(1,TipoCampo.Numero,Dados.getString("id_usuario"));
                    Dados = conexao.RetornaDados("Select u.id_usuario, u.login, m.nome, u.id_grupo_usuario, m.status, u.id_registro from USUARIO u Inner Join medico m on (m.id_medico = u.id_registro) Where (u.id_usuario = ?)");
                }
            } else
              Dados = null;
            
        } catch (Exception ex) {
            Dados = null;
        }  
        return Dados;        
    }

}
